import EventUtil from "@/EventUtil";
import 事件类型 from "框架/常量/事件类型";

export default class 事件系统 {
  static 造成伤害前(callback: (data: 伤害事件数据) => void) {
    EventUtil.on(事件类型.造成伤害前, (data: 伤害事件数据) => {
      callback(data);
    });
  }

  static 造成攻击前(callback: (data: 伤害事件数据) => void) {
    EventUtil.on(事件类型.造成攻击前, (data: 伤害事件数据) => {
      callback(data);
    });
  }

  static 受到伤害(callback: (data: 伤害事件数据) => void) {
    EventUtil.on(事件类型.单位受到伤害, (data: 伤害事件数据) => {
      callback(data);
    });
  }

  static 被攻击伤害(callback: (data: 伤害事件数据) => void) {
    EventUtil.on(事件类型.单位受到攻击伤害, (data: 伤害事件数据) => {
      callback(data);
    });
  }

  static 受到暴击(callback: (data: 伤害事件数据) => void) {
    EventUtil.on(事件类型.单位受到暴击, (data: 伤害事件数据) => {
      callback(data);
    });
  }

  static 闪避攻击(callback: (data: 伤害事件数据) => void) {
    EventUtil.on(事件类型.单位闪避攻击, (data: 伤害事件数据) => {
      callback(data);
    });
  }

  static 受到治疗(callback: (data: 伤害事件数据) => void) {
    EventUtil.on(事件类型.单位受到治疗, (data: 伤害事件数据) => {
      callback(data);
    });
  }
}
